hhkb
레드팀

레드팀풀체인_02_초기 침투

작성자 : Heehyeon Yoo|2025-12-24
# RedTeam# InitialAccess# AWS# SSRF# SSM

1. 초기 침투(Initial Access) 개요

초기 침투는 외부 정찰을 통해 식별한 취약점이나 정보(Credential)를 이용하여 내부 네트워크로 진입하는 첫 단계이다.

  • 주요 기법: 피싱(Phishing), 취약한 외부 서비스 악용(Exploit Public-Facing Application), 유출된 계정 사용(Valid Accounts) 등.
  • 트렌드: 과거에는 주로 이메일 피싱이 주를 이루었으나, 최근에는 클라우드(AWS, Azure) 설정 미흡이나 VPN 취약점을 노리는 사례가 급증하고 있다.

2. 초기 침투 실습 시나리오: Grafana 취약점을 통한 AWS 내부망 진입

본 실습은 외부 웹 서비스(Grafana)의 취약점을 이용해 클라우드 인스턴스 권한을 탈취하고, 이를 통해 내부 서버(Bastion Host)에 접근하는 과정을 다룬다.

2.1. 취약점 식별(Reconnaissance)

  • 외부 포트 스캔 결과, 80/tcp, 443/tcp 외에 3000/tcp 포트가 열려 있음을 확인.
  • 접속 결과 Grafana 대시보드 로그인 페이지 확인.
  • 버전 확인 결과, 특정 CVE(디렉토리 트래버설 또는 SSRF)에 취약한 버전임을 식별.

2.2. SSRF를 통한 AWS 메타데이터 탈취

  • SSRF(Server-Side Request Forgery) 취약점을 이용해 서버 내부에서 로컬 요청을 보내도록 유도한다.
  • AWS EC2 인스턴스는 http://169.254.169.254/latest/meta-data/ 주소를 통해 메타데이터 서비스(IMDS)에 접근할 수 있다.
  • 공격 구문을 전송하여 IAM 역할(Role)에 할당된 임시 자격 증명(AccessKey, SecretKey, Token)을 추출한다.
# 메타데이터 조회 예시(취약한 파라미터를 통해 요청)
GET /api/plugins/../../../../../../../../etc/passwd  # LFI 확인
GET /.../http://169.254.169.254/latest/meta-data/iam/security-credentials/  # Role 이름 확인

2.3. AWS IAM 자격 증명 탈취 및 설정

추출한 자격 증명(Credential)을 공격자의 로컬 AWS CLI에 등록한다.

  1. ~/.aws/credentials 파일에 직접 추가하거나 aws configure 명령어 사용.
  2. aws sts get-caller-identity 명령어로 유효한 세션인지 확인.

2.4. SSM(Session Manager)을 이용한 쉘 획득

탈취한 IAM 역할이 AmazonSSMManagedInstanceCore 등의 정책을 가지고 있다면, SSM을 통해 해당 포트가 닫혀 있어도(SSH 등) 원격 쉘을 획득할 수 있다.

  • 장점: 22번 포트(SSH)를 열 필요가 없으며, 클라우드 네이티브한 방식으로 은밀하게 접근 가능하다.
# 인스턴스 ID 확인
aws ec2 describe-instances --region <Region>

# SSM 세션 연결
aws ssm start-session --target <Instance-ID>

2.5. 내부 정보 수집(Discovery)

Bastion Host에 접속한 후, 다음 공격(Privilege Escalation, Lateral Movement)을 위해 내부 시스템 정보를 수집한다.

  • /etc/sssd/sssd.conf 파일 등을 확인하여 현재 서버가 AD(Active Directory) 환경(us.rt.local)에 연동되어 있음을 확인한다.
  • 이는 단순한 클라우드 단독 서버가 아니라, 온프레미스 또는 하이브리드 구조의 AD 환경으로 연결되는 접점임을 시사한다.